Sorting system for multi-bit binary digital records



Aug. 15, 1967 P. N. ARMSTRQNG SORTING SYSTEM FOR MULTI-BIT BINARY DIGITAL RECORDS 6 Sheets-Sheet l Filed Feb. 24, 1964 Aug. l5, 1967 P. N. ARMSTRONG SORTING SYSTEM FOR MULTI-BIT BINARY DIGITAL RECORDS Filed Feb. 24, 1964 ES Sheets-Sheet 2 Aug. 15, 1967 P. N ARMSTRONG 3,336,580

SORTING SYSTEM FOR MULTI-BIT BINARY DIGITAL RECORDS med Feb. 24, 1964 e sheets-sheet s fw a,

n 7 (fyi) fatz/@M ORTING SYSTEM FOR MULTI-BIT BINARY DIGITAL RECORDS P. N. ARMSTRONG 6 Sheets-Sheet 4 Aug. l5, 1967 Filed Feb.

RN MH.

RN NN RN Mm RN NN mx. mlm.

KN HN RN mlm.

RN NN RN mm WN Mm.

n mw mlm.

Aug. 15, 1967 p. NA ARMSTRONG 3,336,580

SORTING SYSTEM FOR MULTI-BIT BINARY DIGITAL RECORDS Filed Feb. 24, 1964 6 Sheets-Sheet 5 f7 ,46'

/zfc/ cw 4m' wwf) /A//Wf 000 0000060 r@ P6 ff/ff/ M a /fj/) ffy/fr M005) h k n fa P74914 T r l i Y Mila/fief Aug. 15, 1967 P. N. ARMSTRONG ISORTING SYSTEM FOR MULTI-BIT BINARY DIGITAL RECORDS 6 Sheets-Sheet G Filed Feb. 24, 1964 NN WN RN NN n uw n my Q Mw Q E E i@ M @CTE E @E @Ew m w i E @ELL E @QQ m uw 5w limg E mli E viv; @QQ m n Q Sl E l E @am mm E m in?? Q M mmw m @GQ n Q Q lila m TAE RQ v Nw v w www w uw@ v wmf uns llama .Ewrb @um @um United States Patent O 3,336,580 SORTING SYSTEM FOR MULTI-BIT BINARY DIGITAL RECORDS Philip N. Armstrong, 17331 Keegan Way, Santa Ana, Calif. 92705 Filed Feb. 24, 1964, Ser. No. 346,598 9 Claims. (Cl. 340-1725) The present invention relates to binary-digital data processing systems, and it relates more particularly to an improved data processing system which is capable of sorting binary coded records identified, for example, by multi bit binary key signals, into an ascending or descending sequence.

This application is a continuation-in-part of copending application Ser. No. 287,938, filed June 14, 1963, and now abandoned.

The improved sorting system of the present invention finds particular utility for sorting binary coded records, as mentioned above, each of which being identified by a binary coded multi-bit key number. These records are fed into the sorter of the invention in a serial manner, and the sorter responds to the key number of each record to effectuate a sorting operation on the records. The operation of the sorting system to be described requires that each record fed into the sorter be so fed that its control field, which contains the key signal, will be sensed by the sorter before its data field is sensed, and with the sensing of the control field progressing from the most significant to the least significant bits of the key signal in a serial manner.

The operation of the sorting system to be described also requires that the records all be of a predetermined equal length. However, shorter records may be padded with blank data. The key signal control field of each record may have any length within the record. The sorting system senses all the bits in the entire record, from the most significant bit of the control field down through all the bits of the control field and of the data field. Since the data field follows the control field in the sensing of the record by the sorting system, the data field bits will not normally affect the sort, as they will be considered as of lesser significance by the sorting system.

Data sorting is a basic and important adjunct of data processing, However, data sorting has long presented a serious problem in that difficulties have been encountered in the provision of a system capable of performing the sorting operations with minimum time requirements, and without the requirements of excessively large storage facilities and excessively complicated control circuitry.

The sorting operation of the system to be described commences the moment the first record word is introduced into the system, and that record is placed in a particular storage element in the system until it is displaced by a subsequent record having, for example, a higher number in its key signal control field. Then, as subsequent records are fed serially into the sorting system of the invention, key signals in the corresponding control fields thereof are compared with the key signals in the control fields of the records already in the system. This means that an initial partial sort is completed at the end of the input operation.

When all of the records to be sorted are fed into the sorting system of the present invention, so that the input operation is completed, the system is switched from its input mode to its output mode. Then, the sorting process is completed as the records are fed out of the system, and the result is that the records fed out of the system are arranged in a predetermined sequence, as determined by the key signals in their control fields.

The input process of the sorting system of the present invention may be terminated after any desired number of records have been introduced into the system, and the system may then be set to its output mode. The resulting output operation then presents the records in the desired sequence. In other words, there is no need for the sorting system to be completely filled with any particular number of records in order for the sorting operation to be carried out.

As mentioned above, an important advantage of the present invention is that it can be constructed to handle any desired number of records, Without any limitation on the maximum number of records which may be sorted thereby.

Another advantage of the sorting system of the invention is that it is constructed to be changed from the input to the output mode, or any other mode, without the need for external switching or logic control circuitry.

Another object of the present invention, therefore, is to provide an improved binary-digital data processing system which is capable of rapidly and efficiently sorting data records into an ascending or descending sequence, and lwith a minimum of necessary components.

Another object of the invention is to provide such an improved sorting system which is capable of performing the sorting operation with a minimum of storage requirements.

Yet another object of the invention is to provide such an improved sorting system which is flexible in its operation in that it is capable of handling as many or as few records as desired for any particular sorting operation, and in which the feed of records into the system can be interrupted at any time and subsequently resumed.

A particular object of the present invention is to provide such an improved sorting system which is devised in a manner such that there is no limitation to the number of records which can be successfully handled and sorted thereby.

Other objects, advantages and features of the invention will become apparent from a consideration of the following description, when the description is taken in conjunction with the accompanying drawings, in which:

FIGURE 1 is a schematic block diagram of a system representative of one embodiment of the present invention;

FIGURE 2 is a `block diagram of a sorting network which may be used in the system of FIGURE 1;

FIGURE 3 is a logic diagram of a sorting module which may be used in conjunction with a multiplicity of like modules in the sorting network of FIGURE 2; and

FIGURES 4A, 4B, 4C, 4D, and 4E are tables representing schematically the manner in which the sorting operation of the system of the invention may proceed.

Specifically, FIGURE 4B shows the input mode of operation of the system during which the data records are partially sorted, and FIGURE 4E shows the output mode of operation during which the sort is completed. FIGURE 4A shows a register containing Unsorted records to be sorted in the system. FIGURE 4C represents the recirculate mode of operation of the system, and FIGURE 4D represents the partial shift mode of operation.

The sorting system of FIGURE l includes a storage medium 10. This storage medium may include, for example, a magnetic memory drum, or memory tape, on which different tracks or channels are provided to form registers for the different record words fed into the system for sorting purposes. As an equivalent, for example, the storage medium may be made up of a plurality of delay lines having different delays Corresponding to different numbers of records.

The storage medium 10 of FIGURE l, for purposes of explanation, may be considered to be in the form of a magnetic tape 12, a fragment of which is illustrated, the tape being assumed to be moving from the lett to the right in FIGURE l. The magnetic tape includes a plurality of different channels, or tracks, extending along its length, and it has corresponding read and write heads, designated by arrows, associated with the diierent channels.

For example, the tape 12 may include a timing track which, in turn, includes regularly spaced magnetic recordings representing the timing of each successive record in the system. An appropriate read head 16 is magnetically coupled to the timing track, and it responds to the recordings in the track to provide record timing signals at the output terminal OR. These timing signals represent the times of occurrence of each successive record in the systern, as the record words are serially circulated in and out of the system.

The tape 12 includes a further track designated A, and this track forms the rst storage register for the system. A write head wo is magnetically coupled to the track A, and this head responds to signals applied to the input terminal A to record such signals in that track. A read head R is also magnetically coupled to the track A, and the read head is displaced from the write head along the track a distance corresponding to one record.

In like manner, a track B is provided on the magnetic tape l2; and an appropriate write head wl and a read head R1 are magnetically coupled to the track B. The write head w1 responds to signals applied to the input terminal B to record the corresponding magnetic signals in the track B. The read head R1 is displaced along the track B a distance corresponding to two record words from the write head w1.

The tape 12 also includes a track designated C. A write head wz and a read head R2 are magnetically coupled to the track C. The read head R2 is displaced along the track C a distance corresponding to one record. The write head W2 responds to input signals introduced to the input terminal C to produce corresponding recordings in the track C.

The tape 12 also includes a track D. A write head w3 and a read head R3 are magnetically coupled to the track D. The write head w3 responds to electric signals applied to the terminal D. The read head R3 is displaced along the track D a distance corresponding, for example, to four records.

The magnetic tape 12 also includes a track E. A write head W4 and a read head R4 are magnetically coupled to the track E. The write head responds to signals received from a terminal E. The read head R4 is displaced along the track E a distance corresponding to one record.

The magnetic tape 12 also includes a track F. A write head W5 and a read head R5 are magnetically coupled to the track F. The write head W5 responds to signals received from a terminal F. The read head R5 is displaced along the track F a distance corresponding to six record words.

It is to be understood that the number of tracks shown on the magnetic tape 12 is for purposes of illustration only. More or less tracks may be included, if so desired, depending upon the maximum number of record blocks to be sorted. In each instance, each succeeding track will provide storage for an increasing number of record blocks in accordance with the progression 2, 4, 6, 8, l0. In addition, each successive track will be separated by a track having storage facilities for one record, such as the tracks C and E. Thus the overall progression is of the order of l, 2, l, 4, l, 6,1, 8, n-l, 1, n.

The read heads RO-RE` are connected to correspondingly indicated input terminals of a sorting network 30. The sorting network may have any appropriate configuration, and a suitable form for the network will be described in conjunction with FIGURES 2 and 3. The sorting network responds to the key signals of the records introduced to it to sort the records in an ascending or descending sequence, whichever is desired.

The input records which are to be sorted by the system of the invention may be stored in a suitable input device, not shown, and these are fed to the terminal R6 of the sorting network in a serial bit-by-bit manner, with the key signal control field first, and positioned to be sensed from the most significant to the least signilicant bit. Control bits are also applied to the sorting network 30 from an appropriate source, these latter bits being applied on a control line connected to an input terminal Rq.

As mentioned above, each record word consists, for example, of multi-bit binary numbers; each word including a key signal control eld and a data lield. The control eld is formed, for example, of a multi-bit key signal binary number, and it serves to identify the data in the corresponding data field.

The sorting network 30 responds to the binary key signal number of the control field of each record read into the sorting network through the input terminal R6, and it compared the key signal with the key signals of other records already in the system, as will be described.

The reading of information into the system must be synchronized. For that reason, the timing signals derived from the timing track of the magnetic tape 12 are used to control the operation of the input device.

It will become evident as the description proceeds, that although the sorting network 30 has eight output terminals corresponding to eight input terminals, more or less units may be included in the network, with more or less input and output terminals, depending upon the capacity desired. The output terminals of the particular embodiment are designated SO-Sq. The records introduced to the sorting network 30 at the input terminals R-R7 are sorted in the network, and they appear in the particular embodiment, in a decreasing sequence from the output terminal S0 to the output terminal S7.

The output terminals Sl-Ss are connected back to the respective input terminals A, B, C, D, E, and F. The sorted data output appears at the output terminal S0 during the output mode of operation of the system. The output from the output terminal S7 is not used.

The sorting network 30 of FIGURE l may take the form shown by the block diagram of FIGURE 2. Each of the blocks in FIGURE 2 is a sorting module, and it may comprise the logic sorting system shown in FIG- URE 3. The network 30 of FIGURE 2 is described in detail in Patent 3,015,089, Which issued in the name of the present inventor. The input terminals of each block in FIGURE 2 are designated A and B respectively, and the output terminals are designated Lo and Hi respectively.

In the illustrated embodiment of FIGURE 2, the input terminals Rn and R1 are connected to the respective input o terminals B and A of a modular block 200. Likewise, the

input terminals R2 and R3 are connected to the respective input terminals B and A of a modular block 202; the input terminals R., and R5 are connected respectively to the input terminals B and A of a modular block 204; and the input terminals R6 and R7 are connected to the respective input terminals B and A of a modular block 206.

The output terminal Hi of the block 200 is connected to the B input terminal of a block 208, and the output terminal Lo of the block 200 is connected to the B input terminal of a block 210. The output terminal Hi of the block 202 is connected to the A input terminal of the block 208, and the output terminal Lo of the block 202 is connected to the A input terminal of the block 210.

The output terminal Hi of the block 204 is connected to the B input terminal of a block 212, and the output terminal Lo of the block 204 is connected to the B input terminal of a block 214. The output terminal Lo of the block 204 is connected to the B input terminal of the block 214, and the output terminal Hi of the block 206 is connected to the A input terminal of the block 212.

The output terminal Lo of the block 208 is connected to the B input terminal `of a block 216, and the output terminal Hi of the block 210 is connected to the A input terminal of the block 216. The output terminal Lo of the block 212 is connected to the B input terminal of a block 218, and the output terminal Hi of the block 214 is connected to the A input terminal of the block 218.

The output terminal Hi of the block 212 is connected to the A input terminal of a block 220, and the output terminal Hi of the block 208 is connected to the B input terminal of the block 220.

The output terminal Hi of the block 216 is connected to the B input terminal of a block 222, and the output terminal Lo of the block 216 is connected to the B input terminal of a block 224. The output terminal Hi of the block 218 is connected to the A input terminal of the block 222, and the output terminal L of the block 218 is connected to the A input terminal of the block 224. The output terminal Lo of the block 210 is connected to the B input terminal of a block 226, and the output terminal Lo of the block 214 is connected to the A input terminal of the block 226.

The output terminal Hi of the block 220 is connected to the output terminal So of the sorter network, and the output terminal Lo of the block 220 is connected to the B input terminal of a block 228. The output terminal Lo of the block 222 is connected to the B input terminal of a block 230. The output terminal Hi of the block 224 is connected to a block 232, and the output terminal Lo of the block 224 is connected to a block 234.

The output terminal Hi of the block 228 is connected to the output terminal S1 of the sorting network, and the output terminal Hi of the block 232 is connected to the output terminal S2 of the sorting network. The output terminal Lo of the block 232 is connected to the B input terminal of a block 236, and the output terminal Hi of the block 230 is connected to the A input terminal of the blocks 236.

The output terminal Hi of the block 236 is connected to the output terminal S3 of the sorting network, and the output terminal Lo of the block 236 is connected to the output terminal S4 of the sorting network. The output terminal Lo of the block 230 is connected to the S5 output terminal of the sorting network, the output terminal Lo of the block 234 is connected to the output terminal S6 of the sorting network, and the output terminal Lo of the block 226 is connected to the output terminal S7 of the sorting network.

From the above described connections of the modular blocks in the sorting network of FIGURE 2, it will be appreciated that the higher of the two signals compared in the block 200 is applied to the block 208, whereas the lower of the two is applied to the block 210. Likewise, the higher of the two signals compared in the block 202 is applied to the block 208, whereas the lower of the two signals is applied to the block 210.

In like manner, the signals compared in the different modules of the sorting network 30 in FIGURE 2 are shifted up and down between the modules, until they appear in a sorted condition at the output terminals So-Sq. As mentioned above, the signals appearing at the output terminal So-Sq appear, with respect to the key signals in their respective control fields, sorted in a descending sequence in the particular embodiment under consideration.

As also noted above, the various signals referred to may, in practice, be binary coded data records. The multibit binary key signals in the different control fields are compared, so that the records themselves are produced in a bit-by-bit serial manner at the different output terminals, with the records appearing at the different output terminals, as dictated by the number represented by their corresponding key signals in their control fields.

As mentioned above, each of the modules of the sorting network 30 of FIGURE 2 may be composed of the logical system shown in FIGURE 3. The system of 6 FIGURE 3 is similar to the system disclosed in Patent 2,984,822 which issued May 16, 1961, in the name of the present inventor.

The sorting system of FIGURE 3 is constructed so that when a pair of binary coded records are introduced to the input terminal A and B in a serial bit-by-bit manner; and when each of the records includes a control field which, in turn, contains a binary coded key signal identifying the record, the system is capable of comparing the key signals of the two records. The records are thereby sorted in the system on the basis of their key signals, so that the record with the higher key signal appears at the output terminal Hi, and the record with the lower key signal appears at the output terminal Lo.

As `mentioned previously, the key signal comparison proceeds from the most significant bit of each of the key signals to the least significant bit. Once a bit in each key signal is reached indicating that one key signal is greater than the other, the decision is made, and the selection of output terminals for the two records is determined. That is, the comparisons made thereafter between the bits in the remaining portions of the control fields, and between the bits in the data fields, have no efiect on the selection of the output terminals for the two records, as the selection has already been made.

The sorting system of FIGURE 3 is constructed so that the binary coded record signals A and B, applied to the correspondingly identified input terminal A and B, are gated through first and second and gates and through a rst or gate to the high output terminal; whereas, complements of the binary coded signals A and B (namely and B) are gated through third and fourth and gates and through a second or" gate and an inverter network to the low output terminal.

The passage of these binary coded record signals through the and gates is controlled by an inhibit ipflop Q, and by an exchange flip-flop Q3, as will be described.

The applied binary coded records A and B pass through all the and gates of the module, so long as each successive bit of both records is the same, each being either a "1 or a 0." So long as this condition continues, the successive bits of the two records appear simultaneously at the high and low output terminals.

However, when a condition occurs such that one of the bits of one of the records is a binary zero when the corresponding bit of the other record is a binary one," the sorting system of FIGURE 3 is controlled so that thereafter all the bits of the former signal appear at the low output terminal, and all the bits of the latter signal appear at the high output terminal, regardless of the relationship between these latter bits of the two records.

It is apparent, therefore, that if the two multi-bit binary coded records A and B are introduced to the sorting systern of FIGURE 3 in a serial bit-by-bit manner, and with the control field of each in front so that each key signal may be read from its most significant to its least significant bit, the sorting system will cause the higher indicated record to appear at the output terminal Hi and the lower indicated record to appear at the output ten-ninal Lo.

The sorting system of FIGURE 3 includes a rst input terminal A which receives, for example, the first record A; and it includes a second input terminal B which receives, for example, the second record signal B. As mentioned above, each of the records includes a control field, and the key signals in the two control fields are compared to determine which record is to be considered the high, and which is to `be considered the low.

The input terminal A is connected to an and gate 312 and to an inverter network 319. The input terminal B is connected to an and gate 313 and to an inverter network 320. As is well known to the electronic digital computer art, the inverter network 319 responds to the input record signal A to produce its complement and the inverter network 320 responds to the record signal A to produce its complement The inverter network 319 is connected to an and gate 321, and the inverter network 320 is connected to an and" gate 322. The and gates 312 and 313 are connected to an or gate 314. The or gate 314 is connected to the output terminal designated Hi." The and gates 321 and 322 are connected to an or gate 323. The or gate 323 is connected to an inverter network 325 which, in turn, is connected to the Lo output terminal.

The input terminal A and the inverter network 320 are connected to an and gate 335. This means that the binary coded records A and are introduced to the and gate 335. The input terminal B and the inverter network 319 are connected to an and gate 337. Therefore, the binary coded records B and are applied to the and gate 337. Appropriate bit timing clock pulses derived from any suitable clock generating source, are also applied to the and gates 335 and 337 for bit timing purposes.

The and gate 335 is connected to the set input terminal of the inhibit flip-op Q1. The and gate 337 is connected to the set input terminal of the exchange tlipop Q3. Prior to each input operation, reset pulses are applied to the input terminals of the tlip-ops Q1 and Q3 to reset the ip-ops.

The false output terminal of the inhibit ip-fiop Q1 is connected to the and gates 313 and 321, and also to the and gate 337. This false output terminal of the ip-op applies the term 6 1 to the and gates 313, 321 and 337. The false output terminal of the exchange flipflop Q3 is connected to the and gates 312 and 322, and to the and gate 335. This output terminal of the exchange flip-nop applies the term @-3 to the and gates 312, 322 and 335.

As noted above, in order for the system of FIGURE 3 to perform its sorting function, it is necessary for the binary coded records A and B to be applied to the system in a bit-by-bit serial number, and with the most significant bit of the key signal in each of their control fields in the lead.

At the commencement of the sorting operation, both the inhibit Hip-Hop Q1 and the exchange flip-flop Q are reset, so that both the terms '1 and Q s are false. Therefore, at the `beginning of the operation, the and gates 312, 313, 321 and 322 are all enabled. The binary coded record signals A and B pass through the and gates so long as the corresponding bits of the two records are either both "1 or both 0." These bits then appear in their normal form at the output terminals Hi and Lof Assume now that a bit in the control field of the record A is a zero at the time when the corresponding bit in the control field of the record B is a one, and that this is the first instance that such a condition has occurred. This means that the key signal of the record B is a higher number than the key signal of the record A. Under this condition, the term -B is true so that the and gate 337 is enabled. The next clock pulse sets the exchange flip-flop Q3, so that the and gates 312 and 322 are disabled. Also, the and gate 335 is disabled, so that no further triggering of either of the flip-flops Q1 or Q3 is possible during the particular comparison operation.

Following the detection of a zero bit in the control field of the A record, as compared with a one bit in the control field of the B record, indicating that the key number of the B record is greater than the key number of the A record, the remaining bits of the control and data fields of the A record pass through the enabled and gate 321 in complemented form, and through the or gate 323 and inverter network 325 to the output terminal Lo. The corresponding bits of the control field and data field of the B record pass through the enabled and" gate 313 and through the or gate 314 to the output terminal Hi.

Therefore, the detection of the inequality between the key signals in the control fields of the A and B records causes the A record to appear at the output terminal Lo and the B record to appear at the output terminal Hi.

Conversely, should the comparison described above reach a point at which the key signal in the control field of the A record has a one bit at the time when the key signal in the control field of the B record has a zero bit, indicating that the key number of the A record is greater than the key number of the B record, the term A- applied to the and gate 335 enables the and gate 335, so that the next clock pulse sets the inhibit ip-op Q1.

This setting of the inhibit flip-flop Q1 causes the "and" gates 313 and 321 to become disabled, and also causes the and gate 337 to become disabled. The disabling of the and gate 337 prevents any setting of the exchange tiip-op Q3 during the remaining portion of the cornparison process for the particular records under consideration.

Under the latter set of conditions, the record A with the greater key number is passed through the and gate 312 and through the or" gate 314 to the Hi output terminal, whereas the B record with the lower key number is passed through the inverter 320, through the and" gate 322, and through the or gate 323 to the inverter 325. This latter record is re-inverted in the inverter 325 and appears at the Lo output terminal in its original form.

Therefore, in the manner described above, and as described in greater detail in the above-mentioned Patent 2,984,822, the sorting module system of FIGURE 3 responds to the binary coded records applied to its input terminals, so as to produce the records at its output terminals in a manner such that the record identified by the higher key signal appears at the Hi output terminal, and that identified by the lower key signal appears at its Lo output terminal.

As mentioned above, and as described in detail in Patent 3,015,089, a plurality of sorting modules, such as described in FIGURE 3, are combined in the sorting network 30 of FIGURE 2.

The operation of the system of FIGURE l may best be explained by reference to the schematic diagram of FIG- URES 4A-4E. For the purposes of feeding the record data to be sorted into the system of the invention, it will be assumed that the input line coupled to the terminal R6 of FIGURE 1 initially loads a series of binary zeros into the sorting system, so that the key signals in the control tields of the records subsequently applied to the system are initially compared with zeros.

It will also be assumed that the sorting network 30 responds to such a comparison to produce the records with decreasing key signal numbers in their control fields at the successive output terminals S1, S2, S3, S4, S5, S6 and S7 of the sorting network.

A typical input operation will now be considered, during which fourteen records from any appropriate register, or other storage device, (FIGURE 4A) are fed in serial bit-by-bit manner to the input terminal R11 of the sorting network 30 of' FIGURE 1. Each record is identified by a corresponding binary coded key number in its control tield. These key numbers are illustrated in FIGURE 4A by their decimal equivalents. It will be understood that, in each instance, the number designated in FIGURE 4A is the decimal equivalent of the number indicated by the binary coded key signal in the control field of the corresponding record. The diterent records of FIGURE 4A are assumed to be stored in an appropriate register, as mentioned, in readiness to be read in a serial bit-by-bit ymanner into the input terminal R6 of the sorting network 30 in FIGURE 1.

As mentioned above, the sorting system of the present invention operates in a manner such that the input information of FIGURE 4A is first read into the system, and it is then read out of the system. These two input and output operations are all that are necessary to produce the data in its sorted condition.

However, as will be described, the sorting system of the invention may also be controlled to enter a circulate mode, so as to preserve the information already read into the system, and to permit further information to be read into the system at a later time for comparison with the earlier information previously read into the system, and so as to achieve an over-all sort of all the information.

The system of the invention may also be set to a shift mode of operation during which record blocks already in the system may be shifted to different positions, for reasons to be described.

An important feature of the system of the invention is that it can be controlled to its input, shift, output and circulating modes, merely by the introduction of appropriate binary coded control signals to the terminal R7 of the network 30 in FIGURE 1 over the control line.

For example, during the input operation, the control data applied to the input terminal R7 takes the form of successive unity binary bits, as shown in FIGURE 4A.

Such a signal corresponds to the maximum number that can be represented by any of the key signals. The control bits, therefore, will always appear at the maximum output terminal S of the network 30 during the input operation. Since zeros are initially loaded into the system on the input line, the various records subsequently applied to the input terminal R6 of the sorting network 30 will appear in a sorted condition at the output terminals S1, S2, S3, S4, etc., as these records are serially `read into the system, It is desired, of course, that the different records appear at the output terminals Sl-S, so that they may be recirculated back into the system.

The manner in which the particular records of FIG- URE 4A are serially read into the system of FIGURE l, and the manner in which these records are circulated into the different storage elements on the magnetic tape 12, is illustrated in the table of FIGURE 4B.

As shown by the line 1 in FIGURE 4B, the diierent storage tracks on the tape 12 are initially loaded with zeros, these being previously introduced into the system from a suitable source and by way of the input terminal R3 of the network 30. The input register of FIGURE 4A at the start of the input operation applies the iirst record having the key signal indication 67, to the input terminal R5. At the same time, a series of binary ones are applied from an appropriate control signal source to the input terminal R7. These control signal binary ones, as eX- plaine-d, appear at the output terminal S0; and the first record with the key number 67 appears at the output terminal S1. The record containing the key signal indication 67 is then circulated from the output terminal S, to the input terminal A to be stored in the one word register in track A of the magnetic tape.

Then, as a second step, the input register applies the record having the key signal indication 33 to the input terminal RB of the sorting network 30, whereas the data block 67 is applied to the input terminal R0. The resulting sort produces the control signal unity bits at the output terminal S0, the record 67 at the output terminal S1, and the record 33 at the output terminal S2.

Then, as each record is introduced from the register of FIGURE 4A in a serial bit-by-bit manner `to the input terminal R5 of the sorting network 30 of FIGURE 1, the information circulates and is stored in the different portions of the system of FIGURE l in accordance with the steps shown in the table of FIGURE 4B.

It will be noted, that during the input mode of operation, as each record is fed into the sorting system of FIG- URE 1, the records enter the different storage portions of the system, and circulate through the sorting network 30 to be compared with the records subsequently fed into the system. Finally, at the end of the input mode, and after all the records have been fed into the sorting system, the records are stored in the different portions of the system, in the manner shown in step 1S of FIG- URE 4B.

It should be pointed out that although the records in the different storage portions of the system are not completely sorted, the information is stored in a descending order in the different storage portions. That is, all the different records in the six-block storage element are of a smaller value than the word in the preceding one block element, which, in turn, is of a smaller value than all the records stored in the preceding four-block storage element, and so on.

Since the particular sorting system under consideration is of the circulating dynamic type, rather than a static type, the information fed into the system must be kept circulating, or else it will be lost. One means for accomplishing this continued circulation of the information is to proceed directly from the input mode of operation of the system to the output mode.

It should be pointed out that it is unnecessary to till the sorting system completely at the termination of the input mode. That is, the input operation can be stopped after any desired number of records have been fed into the system; and the system may be immediately set to its output mode, during which the information in the system may be read out of the system in a sorted condition.

The system of the present invention, however, is ilexible in that, if so desired, the system may be set to a recirculate mode at any time so as to preserve the information already fed into the system. Then, at a desired later time, additional information may be fed into the system to complete the input operation, or the system may be set to its output mode to read out the records in a sorted condition.

However, when the sorting system of the invention is in the recirculate mode, and it is desired to feed further information into the system, the recirculate mode must be continued until the information circulated in the system is returned to its original positions. This means that a certain access time must be taken into consideration before further information is fed into the system, after the system has been set to the recirculate mode.

Under certain conditions the access time requirements mentioned above may be obviated. This is achieved, as will be described, by shifting the information in the system, rather than circulating the information.

As mentioned above, all the controls of the system of the invention are effectuated by the application of appropriate binary signals to the input terminal R6 and to the control terminal R7 of the sorting network 30, and without the need for any extraneous logic switching or control circuitry. To establish the recirculate mode, for example, and as shown in FIGURE 4C, it is merely necessary to feed binary zeros to the input terminal R6 of the sorting network 30 of FIGURE l, and to feed binary ones to the input terminal R7.

The resulting compare and sorting operations in the sorting network 30 cause the information already in the system to appear across the output terminals of the sorting network in the same sequence in which it was applied to the input terminals. Therefore, information read out of each storage element of the system is circulated through the sorting netwrk 30 and is read into the other end of the same storage element. This establishes a usual recirculating condition for the information, as shown by the steps 8, 8A and 8B in FIGURE 4C, with the information in each portion of the system recirculating in an appropriately clocked manner.

As mentioned above, when the sorting system of FIG- URE l is set to a recirculate mode after the partial completion of the input mode, a certain access time is required before further information is fed into the system for sorting with information already in the system. This access time corresponds to the time required for the information circulating in the system during the recirculate mode to return to its original positions.

However, under certain conditions, the input operation can be terminated, and information already in the system can be preserved, so as to permit additional information to be fcd into the system without any access time requirements. This latter operation can be accomplished by establishing the sorting system of FIGURE l to a shift mode. However, the shift mode is feasible only when a portion of the total storage capabilities of the system are being used.

For example, when the input operation reaches the step 8 of FIGURE 4B, and as shown in FIGURE 4D, the system can be set to the shift mode by inputting binary ones to both the input terminal R6 and to the control terminal R7 of the sorting network 30.

This shift mode of operation preserves the information already in the system; and causes it to shift to the right, as shown by the successive steps 8, 8A and 8B in FIGURE 4D. In each instance, the shifted information is replaced by the blanks, illustrated -t, and which correspond to the maximum binary numbers composed of a series of binary ones.

The reason for the shift is because the maximum control and maximum input binary numbers (-t-,+) appear at the output terminals S and S7 of the sorting network 30, so that the records in the system are continually shifted down to the output terminals S2, S3, S4, S5 and S5 of the sorting network. During this shifting operation, the storage capabilities of the system must be such that only zeros appear at the data output terminal S7, and no information is lost out that terminal.

After any particular time interval, which is limited by the storage capabilities of the system, additional information may bc immediately fed into thc system, by returning the system to its input mode of FIGURE 4A. However, for this latter input mode, binary zeros are placed on the control line and applied to the input terminal R7 of lhe sorting network 30, rather than binary ones. This permits the previously introduced blanks to be pumped out of the system at the Sn control output terminal of the sorting network. When the last blank is so removed from the system, the zeros on the control line must be replaced by binary ones, so as to prevent the loss of the maximum key record blocks out through the output terminal S0.

After all the information has been fed into the sorting system of FIGURE l, either by the use of recirculate and/or shift modes, or without the use of such modes of operation, the system is set to the output mode of FIG- URE 4E, so as to complete the sorting operation. During this latter mode, binary zeros are applied to the input terminal Re, and binary zeros are applied to the control terminal R7.

The resulting application of the records to the input terminals of the sorting network 30, causes the comparisons to be made, as shown by the table of FIGURE 4E. Now that the binary ones (present during the input mode) have been replaced by zeros at the control input terminal R7, the records, rather than the control signal ones appear serially at the output terminal S0.

It will be appreciated that since the control signal no longer is a series of ones, as was the case with all the other operations of the system, the data is permitted to reach the output terminal SU, and for each circulation of the system, a different record presents itself in a serial bit-by-bit manner at the output terminal. Moreover, as shown by the table of FIGURE 4E, the presentation of the records at the output terminal S0 is in a perfectly sorted descending order, as dictated by the numbers represented by the key signal in the control field of each record.

It should hc appreciated that when the block storage capacities of the different registers A, B, C, D, E, F of FIGURE l are in a progression l, 2, 1, 4, 1, 6, 1, 8 a complete sort may be made of any number of records by the above described input and output operational modes.

The invention provides, therefore, an improved and simplified system which is capable of rapidly and efficiently sorting data.

An important attribute of the system of the invention is the fact that sorting can be accomplished quickly, and by an input operation followed by an output operation. It is to be noted that no storage capacity beyond that required to hold the information itself is required in the system.

Another important feature of the improved system of the invention is that it is capable of handling any number of record blocks, merely by increasing the number of its storage elements. As mentioned, the record capacity of each storage element should increase in a progression of 1, 2, l, 4, 1, 6, 1, 8 as illustrated in FIGURE l.

Another important attribute of the invention is its flexibility. As mentioned, the system may be set to a circulate mode of operation or a shift mode, in order to preserve information already fed into the system. Moreover, when the system is set to a shift mode, additional information can be read into the system without any access time requirements.

Yet another important feature of the improved system of the invention is the fact that all the controls are effectuated by control signals applied to the inputs of its sorting network. That is, the improved system of the invention requires no extraneous logic switching circuitry, or the like, to set its operation to any particular mode.

It is apparent that although a particular embodiment of the invention has been shown and described, modifications rnay be made. It is intended in the following claims to cover all modifications which fall within the scope of the invention.

What is claimed is:

l. A data handling system including: a plurality of storage means for receiving a plurality of records, a first plurality of said storage means each having a capacity to provide storage for one of said records and a second plurality of said storage means having respective capacities to provide storage for predetermined different numbers of said records; input circuit means for introducing records into the system in a random order; a sorting network having input terminal means coupled to said storage means and to said input circuit means for receiving records therefrom and having a plurality of output terminals, said sorting network presenting such records at the output terminals thereof in a predetermined sequence', and means including circuitry connecting said output terminals of said sorting network to said storage means of said first plurality and to said storage means of said second plurality in a predetermined sequence alternating between the storage means of the rst and second pluralities for circulating the records presented at said output terminals to respective ones of said storage means, and said sorting network having a further output terminal at which the records introduced into the system appear serially in a sorted sequence.

2. A data handling system including: a plurality of storage elements for receiving a plurality of equal length multi-bit binary-coded records, a first plurality of said storage elements each having a capacity to provide storage for one of said records and a second plurality of said storage elements each having a capacity to provide storage for a predetermined progression of different numbers of said records; input circuit means for introducing to the system in a serial bit-by-bit manner and in a random order equal length multi-bit binary-coded records; a sorting network having input circuit means for receiving records therefrom and having a plurality of output terminals across which the received records are presented in a predetermined sequence; and means including circuitry connecting said output terminals of said sorting network to said storage elements of said first plurality and to said storage elements of said second plurality in a predetermined sequence alternating between the storage elements of the first and second pluralities for circulating 13 the records presented at each of said output terminals of said sorting network in a serial bit-by-bit manner to the corresponding ones of said storage elements, and said sorting network having a further output terminal at which the records introduced into the system appear serially in a sorted sequence.

3. The data handling system dened in claim 2 in which said predetermined progression of different numbers iS 2,4,6,8, 10

4. The data handling system dened in claim 2 in which said sorting network includes an input terminal for receiving binary control signals for controlling the mode of operation of the system.

S. The data handling system dened in claim 2 in which said sorting network includes an input terminal which responds to binary control signals for conditioning the system to an input mode of operation and to an output mode of operation, and in which said records appear serially at said further output terminal of said sorting network in a sorted sequence during the output mode of operation of the system.

6. A data handling system including: a plurality of storage means for receiving a plurality of records, said storage means having capacities for providing storage for different numbers of said records; input circuit means for introducing records into the system in a random order; a sorting network having a plurality of input terminals coupled to said storage means and to said input circuit means for receiving records therefrom and having a further input terminal, and said sorting network having a plurality of output terminals across which said records are presented in a predetermined sequence and having a further output terminal; means including circuitry coupled to said output terminals of said sorting network and to said storage means for circulating the records presented at said output terminals of said sorting network to respective ones of said storage means; means for introducing control signals to said further input terminal of said sorting network to control the mode of operation of the system; and output means coupled to said further output terminal of said sorting network for serially presenting the records in a predetermined sorted sequence.

7. A data handling system including: a plurality of storage elements for receiving a plurality of multi-bit binary coded records, said storage elements having respective capacities to provide storage for predetermined different numbers of said records in respective ones of said storage elements; input circuit means for introducing multi-bit binary-coded records into the system in a random order; a sorting network having a plurality of input terminals coupled to respective ones of said storage elements and to said input circuit means for receiving records therefrom, and said sorting network having a further input terminal, said sorting network further having a plurality of output terminals at which said records are presented in a predetermined sequence, and said sorting network having a further output terminal; means including circuitry coupled to said plurality of output terminals and to said storage elements for circulating the records presented at said plurality of output terminals to respective ones of said storage elements; control means coupled to said further input terminal of said sorting network for introducing binary control signals to said network to control the operation of the system between an input and an output mode; and means coupled to said further output terminal of said network for producing said records serially in a sorted sequence when said system is conditioned to said output mode.

8. The data handling system dened in claim 7, in which said control means further introduces binary control signals to said sorting network for conditioning the system to a circulating mode of operation.

9. The data handling system defined in claim 7 in which said control means further introduces binary control signals to said sorting network to condition the system to a shift mode of operation.

References Cited UNITED STATES PATENTS 2,674,733 4/1954 Robbins S40-172.5 2,955,280 10/1960 Hughes 340-1725 3,013,249 12/1961 Armstrong S40-172.5 3,015,089 12/1961 Armstrong S40-172.5 3,029,413 4/1962 OConnor et al. 340-1725 3,034,102 5/1962 Armstrong et al. 340-1725 3,034,103 5/ 1962 Underwood S40-172.5

ROBERT C. BAILEY, Primary Examiner.

I. P. VANDENBURG, Assistant Examiner. 

1. A DATA HANDLING SYSTEM INCLUDING: A PLURALITY OF STORAGE MEANS FOR RECEIVING A PLURALITY OF RECORDS, A FIRST PLURALITY OF SAID STORAGE MEANS EACH HAVING A CAPACITY TO PROVIDE STORAGE FOR ONE OF SAID RECORDS AND A SECOND PLURALITY OF SAID STORAGE MEANS HAVING RESPECTIVE CAPACITIES TO PROVIDE STORAGE FOR PREDETERMINED DIFFERENT NUMBERS OF SAID RECORDS; INPUT CIRCUIT MEANS FOR INTRODUCING RECORDS INTO THE SYSTEM IN A RANDOM ORDER; A SORTING NETWORK HAVING INPUT TERMINAL MEANS COUPLED TO SAID STORAGE MEANS AND TO SAID INPUT CIRCUIT MEANS FOR RECEIVING RECORDS THEREFROM AND HAVING A PLURALITY OF OUTPUT TERMINALS, SAID SORTING NETWORK PRESENTING SUCH RECORDS AT THE OUTPUT TERMINALS THEREOF IN A PREDETERMINED SEQUENCE; AND MEANS INCLUDING CIRCUITRY CONNECTING SAID OUTPUT TERMINALS OF SAID SORTING NETWORK TO SAID STORAGE MEANS OF SAID FIRST PLURALITY AND TO SAID STORAGE MEANS OF SAID SECOND PLURALITY IN A PREDETERMINED SEQUENCE ALTERNATING BETWEEN THE STORAGE MEANS OF THE FIRST AND SECOND PLURALITIES FOR CIRCULATING THE RECORDS PRESENTED AT SAID OUTPUT TERMINALS TO RESPECTIVE ONES OF SAID STORAGE MEANS, AND SAID SORTING NETWORK HAVING A FURTHER OUTPUT TERMINAL AT WHICH THE RECORDS INTRODUCED INTO THE SYSTEM APPEAR SERIALLY IN A SORTED SEQUENCE. 